Skip to main content

UBINOS 임베디드 소프트웨어를 위한 PC 기반 코드 시뮬레이터의 설계

· 4 min read
김지훈
이우진
담당교수

논문 정보

  • 제목: Modeling of Real-Time System for TMO-Based Automatic Code Generator
  • 저자: 석미희, 신영술, 류호동, 이우진 (경북대학교 전자전기컴퓨터학부)
  • 학회/저널: 2010 한국컴퓨터종합학술대회 논문집 Vol.37, No.1(B)
  • 발행일: 2010-06-01
  • 주요 연구 내용: 실시간 시스템의 시간 제약 조건을 표현하기 위해 표준 UML의 클래스 다이어그램과 상태 머신 다이어그램을 확장하고, 이를 기반으로 TMO(Time-Triggered Message-Triggered Object) 코드를 자동으로 생성하는 설계 방법을 제안함
  • 주요 결과 및 결론: TMO 객체의 SpM(시간 구동 메소드)과 SvM(메시지 구동 메소드)의 시간 제약 조건을 명시할 수 있는 확장된 모델링 표기법을 정의하고, 이를 통해 엔진 등록 및 통신 게이트(Gate) 생성을 자동화하는 설계안을 도출함
  • 기여점: 표준 UML이 제공하지 못하는 시간 제약 조건 기술 방법을 보완하여, 모델 기반 개발 방법론(MDD)을 실시간 시스템 개발에 효과적으로 적용할 수 있는 구체적인 방안을 제시함

요약

초록

실시간 시스템은 계산 결과의 논리적 정확성뿐만 아니라 시간적 정확성도 요구한다. 본 논문은 UCI Dream Lab에서 제안한 TMO(Time-Triggered Message-Triggered Object) 객체를 기반으로 자동 코드 생성기의 설계를 제안한다. 기존 표준 UML은 시간 제약 조건을 기술하는 방법을 제공하지 않아 완전한 실시간 시스템 코드를 생성하는 데 한계가 있다. 따라서 TMO 객체를 이용하여 기존 UML의 구조 및 행위 모델에 실시간 특성을 추가해 확장하고, 이 모델을 바탕으로 하는 자동 코드 생성기의 설계를 제시한다.

서론

모델 기반 개발 방법론은 시스템을 추상화하고 상세화하여 자동으로 코드를 생성함으로써 개발 및 유지보수 비용을 절감할 수 있다. 그러나 실시간 시스템 개발에 널리 쓰이는 UML은 시간 제약 조건을 표현하는 데 한계가 있어, 이를 반영한 코드 생성이 어렵다. 본 연구에서는 실시간성을 부여할 수 있는 TMO 라이브러리를 활용할 수 있도록, UML 모델이 TMO의 시간 제약 조건을 나타내게 하고 이에 맞는 자동 코드 생성기를 설계하는 것을 목표로 한다.

배경

TMO (Time-Triggered Message-Triggered Object) TMO는 객체 모델을 실시간 시스템에 적합하도록 확장한 것으로, 분산 실시간 시스템 개발을 지원한다. TMO 객체는 크게 세 부분으로 구성된다.

  1. ODS (Object Data Store): 객체의 데이터 멤버가 저장되는 영역이다.
  2. SpM (Spontaneous Method): 시간 구동 메소드로, 사전에 정의된 시간 조건(AAC: Autonomous Activation Condition)에 의해 자율적으로 실행된다. 시작 시간, 종료 시간, 주기, 데드라인 등의 정보를 포함한다.
  3. SvM (Service Method): 메시지 구동 메소드로, 외부나 내부의 요청에 의해 실행되며 서비스 완료 데드라인을 가진다.

모델 아키텍처 / 방법론

1. TMO 기반 시스템의 구조 모델 (확장된 클래스 다이어그램) 기존 UML 클래스 다이어그램에 시간 제약 조건을 명시하기 위한 노드를 추가하여 확장하였다.

  • AAC 노드: SpM의 시간 제약 조건을 표현하며 from(시작 시간), until(동작 기간), every(주기), est/lst(실행 가능 구간), deadline(마감 시간) 정보를 포함한다.
  • Deadline 노드: SvM의 서비스 수행 완료 제한 시간을 명시한다.

2. TMO 기반 시스템의 행위 모델 (확장된 상태 머신 다이어그램) 객체의 행위를 표현하기 위해 상태 머신 다이어그램을 확장하여 SpM과 SvM을 병렬적으로 나타낸다.

  • 병렬 영역: SpM과 SvM은 서로 독립적인 실행 흐름을 가지므로 별도의 영역으로 표현한다.
  • SpM 영역: 외부 호출이 아니므로 메소드 내부의 흐름(working, complete, fail 등)을 나타낸다.
  • SvM 영역: 외부에 노출되므로 클래스의 상태 변화(idle, store, fail 등)를 나타낸다. 트랜지션에 시간 제약 조건을 명시하여 데드라인 초과 시 Fail 상태로 전이되도록 설계한다.

3. 자동 코드 생성기 설계 제안된 생성기는 일반적인 코드 생성 과정 외에 TMO 특화 기능을 포함한다.

  • 메소드 등록: 모델링된 SpM과 SvM 정보를 바탕으로 TMO 엔진에 메소드를 등록하는 코드를 생성한다. SpM의 6가지 시간 제약 조건은 API를 통해 엔진에 등록된다.
  • Gate 생성: TMO 객체 간 통신을 위해 의존 관계에 있는 대상 TMO의 SvM을 호출할 수 있는 Gate를 자동으로 생성한다. 이를 위해 연결된 TMO 목록과 SvM 목록을 활용한다.

실험 결과

본 논문은 구현 전 단계의 설계 제안 논문으로, 구체적인 정량적 실험 데이터보다는 자동 온도 제어 장치 예제를 통해 제안된 모델링 기법의 타당성을 검증하였다.

  • 적용 예시: Controller_TMO, Temperature_TMO, Heater_TMO 간의 관계를 확장된 클래스 다이어그램으로 표현하고, SpM의 주기적 동작(5분 주기, 2분 데드라인 등)과 SvM의 요청 처리 데드라인을 명확히 모델링할 수 있음을 보였다.
  • 모델링 검증: 확장된 표기법을 통해 TMO가 요구하는 정밀한 시간 제약 사항(AAC의 from, until, every 등)이 다이어그램 상에 명시적으로 표현됨을 확인하였다.

결론

본 연구는 표준 UML이 지원하지 않는 실시간 시스템의 시간 제약 조건을 표현하기 위해 클래스 다이어그램과 상태 머신 다이어그램을 확장하였다. 이를 통해 TMO 객체의 SpM과 SvM이 가지는 시간적 특성을 모델링할 수 있게 되었다. 또한, 이 모델 정보를 바탕으로 메소드를 TMO 엔진에 등록하고 객체 간 통신을 위한 Gate를 생성하는 자동 코드 생성기를 설계하였다. 향후 연구로는 설계된 코드 생성기를 실제 구현하여 그 유효성을 입증하는 것이 논의되고 있다.